package task

import (
	"MessageSendService/app/common/models"
	"MessageSendService/app/job/internal/handlers"
)

type Task struct {
	taskInfo models.TaskInfo //需要你发送消息的结构体
}

func NewTask(taskInfo models.TaskInfo) *Task {
	return &Task{
		taskInfo: taskInfo,
	}
}

// 发送这条消息
func (t *Task) Run() error {

	//1.消息丢弃

	//2.消息屏蔽  夜间屏蔽

	//3.消息去重  平台性去重  N分钟相同的消息去重

	//4. 发送消息 根据消息类型，找到对应的额handler去发送消息
	handler := handlers.GetHandler(t.taskInfo.SendChannel)
	err := handler.DoHandler(nil, t.taskInfo)
	if err != nil {
		return err
	}
	return nil
}
